home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / TEECHART / DELPHI3.EXE / %MAINDIR% / Examples / Delphi3 / Chart Template / MultiAxi.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-11-17  |  2.3 KB  |  88 lines

  1. unit MultiAxi;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   OHLChart, CandleCh, Series, TeEngine, TeeProcs, Chart, ExtCtrls, GanttCh;
  8.  
  9. type
  10.   TFormMultiAxis = class(TForm)
  11.     Panel1: TPanel;
  12.     Chart2: TChart;
  13.     Series3: TVolumeSeries;
  14.     Series4: TFastLineSeries;
  15.     Chart1: TChart;
  16.     Series1: TCandleSeries;
  17.     Series2: TFastLineSeries;
  18.     Chart3: TChart;
  19.     Series5: TGanttSeries;
  20.     Series6: TFastLineSeries;
  21.     procedure FormCreate(Sender: TObject);
  22.     procedure Chart2Scroll(Sender: TObject);
  23.     procedure Chart1Scroll(Sender: TObject);
  24.     procedure Chart3Scroll(Sender: TObject);
  25.   private
  26.     { Private declarations }
  27.   public
  28.     { Public declarations }
  29.     Procedure ScrollOtherCharts(OriginAxis,DestAxis1,DestAxis2:TChartAxis);
  30.   end;
  31.  
  32. var
  33.   FormMultiAxis: TFormMultiAxis;
  34.  
  35. implementation
  36.  
  37. {$R *.DFM}
  38.  
  39. procedure TFormMultiAxis.FormCreate(Sender: TObject);
  40. begin
  41.   Series1.FillSampleValues(40);
  42.   Series2.FillSampleValues(40);
  43.   Series3.FillSampleValues(40);
  44.   Series4.FillSampleValues(40);
  45.   Series5.FillSampleValues(40);
  46.   Series6.FillSampleValues(40);
  47.  
  48.   { Important:
  49.  
  50.   To make several Charts to be aligned in their Horizontal Axis,
  51.   set the LeftAxis.LabelsSize and RightAxis.LabelsSize properties
  52.   to a common value:
  53.  
  54.   Chart1.LeftAxis.LabelsSize:=60;
  55.   Chart2.LeftAxis.LabelsSize:=60;
  56.   Chart3.LeftAxis.LabelsSize:=60;
  57.  
  58.   }
  59. end;
  60.  
  61. { syncronize scrolling for the 3 charts }
  62. Procedure TFormMultiAxis.ScrollOtherCharts(OriginAxis,DestAxis1,DestAxis2:TChartAxis);
  63. begin
  64.   { syncronize one chart }
  65.   DestAxis1.SetMinMax(OriginAxis.Minimum,OriginAxis.Maximum);
  66.   DestAxis1.ParentChart.Repaint;
  67.   { syncronize the other chart }
  68.   DestAxis2.SetMinMax(OriginAxis.Minimum,OriginAxis.Maximum);
  69.   DestAxis2.ParentChart.Repaint;
  70. end;
  71.  
  72. procedure TFormMultiAxis.Chart2Scroll(Sender: TObject);
  73. begin
  74.   ScrollOtherCharts(Chart2.BottomAxis,Chart1.TopAxis,Chart3.BottomAxis);
  75. end;
  76.  
  77. procedure TFormMultiAxis.Chart1Scroll(Sender: TObject);
  78. begin
  79.   ScrollOtherCharts(Chart1.TopAxis,Chart2.BottomAxis,Chart3.BottomAxis);
  80. end;
  81.  
  82. procedure TFormMultiAxis.Chart3Scroll(Sender: TObject);
  83. begin
  84.   ScrollOtherCharts(Chart3.BottomAxis,Chart1.TopAxis,Chart2.BottomAxis);
  85. end;
  86.  
  87. end.
  88.